package io;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class CopyDemo2 {
    /**
     * 主函数，用于复制文件
     * 本函数演示了如何使用FileInputStream和FileOutputStream来复制文件
     * 此处的例子是复制一张图片文件，但该方法同样适用于其他类型的文件
     */
    public static void main(String[] args) throws IOException {
        // 创建文件输入流，指向源图片文件
        FileInputStream fis = new FileInputStream("./拉布拉多图片生成.png");
        // 创建文件输出流，指向目标复制文件路径
        FileOutputStream fos = new FileOutputStream("./拉布拉多图片生成_cp2.png");
        int len;
        // 定义一个10KB的缓冲区，用于读取和写入数据
        byte[] buf = new byte[1024 * 10];
        // 记录开始复制的时间
        long start = System.currentTimeMillis();
        // 循环读取源文件数据，直到文件结束
        while ((len = fis.read(buf)) != -1) {
            // 将读取的数据写入目标文件
            fos.write(buf, 0, len);
        }
        // 记录复制结束的时间
        long end = System.currentTimeMillis();
        // 输出复制操作所耗费的时间
        System.out.println("复制完毕耗时：" + (start - end) + "ms");
        // 关闭文件输入流
        fis.close();
        // 关闭文件输出流
        fos.close();
    }
}
